home *** CD-ROM | disk | FTP | other *** search
/ Maclife 157 / MACLIFE157-2001-09.ISO.7z / MACLIFE157-2001-09.ISO / Linux / MacOS Tools / Other / BootX 1.1.3 (for Old Mac OS) / Sources / src / BurgundyPatch.c < prev    next >
C/C++ Source or Header  |  2001-07-23  |  1KB  |  58 lines

  1. #include <MacTypes.h>
  2. #include <CodeFragments.h>
  3. #include <MixedMode.h>
  4.  
  5. #include "MoreCFMPatches.h"
  6.  
  7. UInt32 __procinfo = kCStackBased | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)));
  8.  
  9. extern pascal UInt32 PatchPowerOff(UInt32 param);
  10.  
  11. Boolean main(void)
  12. {
  13.     THz                    oldZone;
  14.     OSErr                err;
  15.     CFragConnectionID    bdyConnID;
  16.     Ptr                    fragMain, foundSym;
  17.     CFragSymbolClass    foundSymClass;
  18.     Str255                fragErr;
  19.     Boolean                result = false;
  20.         
  21.     oldZone = GetZone();
  22.     SetZone(SystemZone());
  23.     
  24.     /* Locate Burgundy driver */
  25.     err = GetSharedLibrary("¥pBurgundyPlugin", kPowerPCCFragArch, kFindCFrag, &bdyConnID, &fragMain, fragErr);
  26.     if (err != noErr)
  27.         goto bail;
  28.  
  29.     /* Locate SndHWSetPowerState function */
  30.     err = FindSymbol(bdyConnID, "¥pSndHWSetPowerState", &foundSym, &foundSymClass);
  31.     if (err != noErr)
  32.         goto bail;
  33.  
  34.     /* Patch it */
  35.     err = MorePatchTVector((TVector *)foundSym, (TVector *)PatchPowerOff, 'BooX', 0);
  36.     if (err != noErr) {
  37.         /*DebugStr("¥pPatch failed !");*/
  38.         goto bail;
  39.     }
  40.  
  41.     result = true;
  42.  
  43. bail:
  44.     SetZone(oldZone);
  45.  
  46.     return result;
  47. }
  48.  
  49. #pragma export on
  50.  
  51. pascal UInt32 PatchPowerOff(UInt32 /*param*/)
  52. {
  53.     /*DebugStr("¥pBurgundy PowerOff");*/
  54.     
  55.     return 0;
  56. }
  57.  
  58. #pragma export off